package acmCoder;

import java.util.Scanner;

public class SharesUpAndDown {

	public static void main(String[] args) {
		Scanner  scanner = new Scanner(System.in);
		int nDay;
		while (scanner.hasNext()) {
			nDay = scanner.nextInt();
			calculatePrice(nDay);
		}
		scanner.close();
	}
	//1  (1 -1)  (1 1 -1)  (1 1 1 -1)...
//和： 1    0        1           2      3   ....
//天数 1    2        3           4       5 .....
	//找出一个数字m，使得   m * ( m + 1) / 2 > nDay ,表示n在此前面
	//比如nDay是 9 ，于是m就是4，只需计算天数为4的所有的和，若刚好m * ( m + 1) / 2 == nDay ，那么结果就是天数对应的和
	//相加，这个结果为 (m - 1) * ( m - 2) / 2 + 1 
	//但是若不相等，那么还要加上 2 - k(对于天数大于等于3 得适用)，k为相差几天
	//比如9 的话 与前面的天数相差1天，于是加上 2 -1 = 1，总的价格为 1 + 0 + 1 +2 +1 = 5
	public static void calculatePrice(int nDay){
		if(nDay <= 2){
			System.out.println(nDay);
			return ;
		}
		if(nDay == 3){
			System.out.println(1);
			return ;
		}
		int m ;
		for( m = (int) Math.sqrt(2 * nDay); m * ( m + 1) / 2 >= nDay ; m--){
		}
		m++;
		int k = m * ( m + 1) / 2 - nDay;
		int result =  (m - 1) * ( m - 2) / 2 + 1 + (k == 0 ? 0 : 2 - k);
		System.out.println(result);
	}
}
